home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 June / PersonalComputerWorld-June2009-CoverdiscCD.iso / Software / Freeware / Firebug 1.3.3 / firebug-1.3.3-fx.xpi / content / firebug / changeeditor.xul < prev    next >
Encoding:
Extensible Markup Language  |  2009-02-19  |  4.7 KB  |  117 lines

  1. <?xml version="1.0"?>
  2. <?xml-stylesheet href="chrome://global/skin/"?>
  3. <?xml-stylesheet href="chrome://mozapps/content/preferences/preferences.css" type="text/css"?>
  4. <?xml-stylesheet href="chrome://browser/skin/preferences/preferences.css" type="text/css"?>
  5. <!DOCTYPE window SYSTEM "chrome://firebug/locale/editors.dtd">
  6. <dialog xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
  7.         buttons="accept,cancel"
  8.         id="firebug-external-editors-change"
  9.         width="400" height="200"
  10.         title="editors.Editor_Configuration"
  11.         onload="onLoad();"
  12.         ondialogaccept="return onAccept();"
  13.         persist="screenX screenY">
  14.   <script type="application/x-javascript" src="chrome://firebug/content/xpcom.js"/>
  15.   <script><![CDATA[
  16.       var item;
  17.       var FBL;
  18.       var internalFilefieldTextbox;
  19.       var browseButton;
  20.       function onLoad()
  21.       {
  22.          var args = window.arguments[0];
  23.          item = args.item;
  24.          FBL = args.FBL;
  25.          browseButton = document.getElementById("browse-button");
  26.          document.getElementById("name").value = item.label;
  27.          if ( item.executable )
  28.          {
  29.             try {
  30.                 var file = XPCOMUtils.CCIN("@mozilla.org/file/local;1", "nsILocalFile");
  31.                 file.initWithPath(item.executable);
  32.                 document.getElementById("executable").file = file;
  33.             }
  34.             catch(exc) {}
  35.          }
  36.          if ( item.cmdline )
  37.             document.getElementById("cmdline").value = item.cmdline;
  38.          onChange();
  39.          // Localization
  40.          var element = document.getElementById("firebug-external-editors-change");
  41.          var xulString = element.getAttribute("title");
  42.          document.title = FBL.$STR(xulString);
  43.          if (document.getAnonymousElementByAttribute && !document.getElementById("executable").file) {
  44.            setTimeout(function() {
  45.              internalFilefieldTextbox = document.getAnonymousElementByAttribute(document.getElementById("executable"), "class", "fileFieldLabel");
  46.              if (internalFilefieldTextbox) {
  47.                internalFilefieldTextbox.readOnly = false;
  48.                internalFilefieldTextbox.addEventListener("input", function(e) {
  49.                  browseButton.disabled = true;
  50.                  onChange();
  51.                }, false);
  52.              }
  53.            }, 100);
  54.          }
  55.       }
  56.       function onAccept()
  57.       {
  58.           item.label = document.getElementById("name").value;
  59.           if (!browseButton.disabled) {
  60.             var file = document.getElementById("executable").file;
  61.             item.executable = "";
  62.             if (file)
  63.                 item.executable = file.path;
  64.           } else {
  65.             item.executable = internalFilefieldTextbox.value.replace(/^\s+|\s+$/g, '');
  66.           }
  67.           item.cmdline = document.getElementById("cmdline").value;
  68.           window.arguments[1].saveChanges = true;
  69.       }
  70.       function onChange()
  71.       {
  72.           document.documentElement.getButton("accept").disabled = !(
  73.               document.getElementById("name").value && (
  74.                 (browseButton.disabled && internalFilefieldTextbox && internalFilefieldTextbox.value && internalFilefieldTextbox.value.replace(/^\s+|\s+$/g, '')) ||
  75.                 (!browseButton.disabled && document.getElementById("executable").file)
  76.               )
  77.           );
  78.       }
  79.       function onBrowse()
  80.       {
  81.         const Ci = Components.interfaces;
  82.         const nsIFilePicker = Ci.nsIFilePicker;
  83.         var picker = XPCOMUtils.CCIN("@mozilla.org/filepicker;1", "nsIFilePicker");
  84.         picker.init(window, "", nsIFilePicker.modeOpen);
  85.         picker.appendFilters(nsIFilePicker.filterApps);
  86.         if ( picker.show() == nsIFilePicker.returnOK && picker.file )
  87.         {
  88.           var execField = document.getElementById("executable");
  89.           execField.file = picker.file;
  90.           if (internalFilefieldTextbox) {
  91.             internalFilefieldTextbox.readOnly = true;
  92.           }
  93.           onChange();
  94.           return true;
  95.         }
  96.         return false;
  97.       }
  98.   ]]></script>
  99.   <vbox flex="1">
  100.       <hbox>
  101.          <label control="name" align="baseline">&changeEditor.Name;</label>
  102.          <textbox id="name" flex="1" oninput="onChange()"/>
  103.       </hbox>
  104.       <separator class="groove"/>
  105.       <hbox>
  106.          <label control="executable" align="baseline">&changeEditor.Executable;</label>
  107.          <filefield id="executable" flex="1"/>
  108.          <button id="browse-button" oncommand="onBrowse();" label="&browse.label;"/>
  109.       </hbox>
  110.       <separator class="thin"/>
  111.       <hbox align="center">
  112.           <label control="cmdline">&changeEditor.CmdLine;</label>
  113.           <textbox id="cmdline" flex="1" oninput="onChange()"/>
  114.       </hbox>
  115.   </vbox>
  116. </dialog>
  117.